Semantic Software Versioning Explained